Skip to content

.github/workflow: Add auto release publish workflow - #11661

Merged
shijin-aws merged 1 commit into
ofiwg:mainfrom
shijin-aws:release
Jan 5, 2026
Merged

.github/workflow: Add auto release publish workflow#11661
shijin-aws merged 1 commit into
ofiwg:mainfrom
shijin-aws:release

Conversation

@shijin-aws

@shijin-aws shijin-aws commented Nov 25, 2025

Copy link
Copy Markdown
Contributor

It is a workflow that automates the release process

Expected Workflow

Trigger:

  1. Create a PR with the release label
  2. Merge the PR

Automatic Actions:

  1. Extract Version - Reads version from configure.ac AC_INIT line (e.g., 2.4.0a1)
  2. Build - Runs ./autogen.sh, ./configure, make dist to create tarballs
  3. Generate Checksums - Calculates SHA256 and MD5 sums for all .tar.gz and .tar.bz2 files
  4. Create Draft Release - Creates GitHub draft release with:
    • Tag: Version from configure.ac (e.g., 2.4.0a1)
    • Title: "Libfabric 2.4.0a1"
    • Body: Official OFIWG announcement text + checksums + PR description
    • Assets: Both .tar.gz and .tar.bz2 files

Result:

A professional libfabric draft release page matching the official OFIWG format with checksums and downloadable tarballs, ready for manual publishing.

Usage:

  1. Update version in configure.ac if needed
  2. Add the release label to any PR
  3. Merge the PR
  4. Review the generated draft release
  5. Manually publish when ready

Comment on lines +23 to +27
- name: Build libfabric
run: |
./autogen.sh
./configure
make dist

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to build fabtests as well.

Comment thread .github/workflows/auto-release.yml Outdated
Comment on lines +32 to +34
echo "sha256_sums<<EOF" >> $GITHUB_OUTPUT
sha256sum libfabric-*.tar.* >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have been using sha512sum for prior releases.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed sha256 to sha512, while keeping the md5sums

@darrylabbate

Copy link
Copy Markdown
Member

I would strongly encourage we consider using the release notes automatically generated by GitHub. It already nicely lists all the changes included since the previous release; automatically tagging contributors and relevant PRs. Ex: https://github.com/aws/s2n-tls/releases/tag/v1.6.1

Based on the docs, it's extensible/configurable as well.

@shijin-aws

shijin-aws commented Dec 17, 2025

Copy link
Copy Markdown
Contributor Author

@j-xiong I think we start to sign the tarball, can you share how it works in the current release process?

@j-xiong

j-xiong commented Dec 17, 2025

Copy link
Copy Markdown
Contributor

@shijin-aws A few steps I took:

Do once:

  • Generate a new key-pair: gpg --gen-key.
  • Send the key to a key server: gpg --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy="$http_proxy" --send-keys <key>
  • Export the public key: gpg --armor --export jianxin.xiong@intel.com >public_key.asc.

For every release:

  • Sign the release tarball: gpg --armor --detach-sign libfabric-<version>.tar.bz2

@shijin-aws

Copy link
Copy Markdown
Contributor Author

@shijin-aws A few steps I took:

Do once:

* Generate a new key-pair:  `gpg --gen-key`.

* Send the key to a key server: `gpg --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options http-proxy="$http_proxy" --send-keys <key>`

* Export the public key: `gpg --armor --export jianxin.xiong@intel.com >public_key.asc`.

For every release:

* Sign the release tarball: `gpg --armor --detach-sign libfabric-<version>.tar.bz2`

How do you import the private key when signing the tarball for every release? It is always operated on a persistent server which already has the key imported?

@shijin-aws

shijin-aws commented Dec 17, 2025

Copy link
Copy Markdown
Contributor Author

I may drop that signing procedure within the current scope of this PR.. Every publisher can choose their own signing approach during the publish. It will just generate a draft release page and the operator can add/edit the artifacts anyway

@j-xiong

j-xiong commented Dec 17, 2025

Copy link
Copy Markdown
Contributor

@shijin-aws I was doing it on a specific server, but I believe there are gpg commands to export and import private keys as well.

@shijin-aws

shijin-aws commented Dec 17, 2025

Copy link
Copy Markdown
Contributor Author

@shijin-aws I was doing it on a specific server, but I believe there are gpg commands to export and import private keys as well.

But you have to pull the private key from a server to import if you want to sign the tarball from the github action container?

@j-xiong

j-xiong commented Dec 17, 2025

Copy link
Copy Markdown
Contributor

@shijin-aws I agree the signing can be done manually.

@shijin-aws

shijin-aws commented Dec 17, 2025

Copy link
Copy Markdown
Contributor Author

I would strongly encourage we consider using the release notes automatically generated by GitHub. It already nicely lists all the changes included since the previous release; automatically tagging contributors and relevant PRs. Ex: https://github.com/aws/s2n-tls/releases/tag/v1.6.1

Based on the docs, it's extensible/configurable as well.

Good suggestion, we can make it as a follow-up PR

@shijin-aws
shijin-aws force-pushed the release branch 4 times, most recently from 0dc1e88 to 5690638 Compare December 18, 2025 19:16
@shijin-aws

Copy link
Copy Markdown
Contributor Author

I would strongly encourage we consider using the release notes automatically generated by GitHub. It already nicely lists all the changes included since the previous release; automatically tagging contributors and relevant PRs. Ex: https://github.com/aws/s2n-tls/releases/tag/v1.6.1
Based on the docs, it's extensible/configurable as well.

Good suggestion, we can make it as a follow-up PR

Oh, I didn't realize this will be just a button-click during the release publishing

Signed-off-by: Shi Jin <sjina@amazon.com>
@shijin-aws

Copy link
Copy Markdown
Contributor Author

Addressed all the comments. @j-xiong @aingerson An example of the release page created by this workflow is available in https://github.com/shijin-aws/libfabric/releases/tag/v2.5.0sjina1.0. It is triggered by merging shijin-aws#14. Please let me know if you have more comments, thank you!

@shijin-aws
shijin-aws marked this pull request as ready for review December 22, 2025 17:59
@shijin-aws

Copy link
Copy Markdown
Contributor Author

bot:aws:retest

2 similar comments
@shijin-aws

Copy link
Copy Markdown
Contributor Author

bot:aws:retest

@shijin-aws

Copy link
Copy Markdown
Contributor Author

bot:aws:retest

@shijin-aws
shijin-aws merged commit e70268c into ofiwg:main Jan 5, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants